TManyShape
----------
 TManyShape is a TGraphicControl descendant similiar to
 TShape, but adding new shapes (Diamond, Triangle, Star,
 Polygon), shadows, and fill options (Transparent,Opaque,
 Tiled Image, Gradient Fill, 50% opaque, 25% opaque)


Terms
-----
TManyShape is freeware and public domain. You may not
copyright it. You may not sell it as source code or as
a control, although you may use it freely and without
restriction in executable applications. I would consider
it a big favor if you pass along any enhancements or
corrections to me.

Please don't call or email for support, as none is offered.


Use
-----
I've included MSDEMO.DPR and MSDEMO1.PAS to show the control's
capabilities. This is a 16-bit project, but you can rebuild 
it with 32-bit. As far as I can tell, the control works just
as well with 16-bit or 32-bit Delphi.

Install GPSHAPE.PAS as you would any Delphi component, taking care to 
back up your COMPLIB before doing so. It will install in the PD 
pallette as TManyShape. (You can change this by modifying the 
Register procedure at the end of the .PAS file.)

If you are using 16-bit Delphi, it will look for GPSHAP16.RES, and 
if using 32-bit Delphi ti will look for GPSHAP32.RES. Both are
included.


Legal Disclaimer
---------------
This software is provided on an "AS IS" basis, with no implied warranty 
regarding merchantability or fitness for any particular purpose. 
Garry A Prefontaine makes no representations or warranties with 
respect to the contents hereof, and specifically disclaims any implied 
warranties. By using this software you agree that Garry A Prefontaine 
will not be liable to you or any third party for any use of (or 
inability to use) this software, or for any damages (direct or 
indirect) whatsoever, even if Garry A Prefontaine is apprised of the 
possibility of such damages occurring.  In no event shall Garry A Prefontaine
be liable for any loss of profit or any other commercial damage, including but 
not limited to special, incidental, consequential or other damages. 
The entire risk related to the quality and performance of the software 
is on you.


Properties
----------
BackColor: TColor
	[Used when SurfaceType is stBrushOpaque or stGradientFill]

	Color of the background of the shape, or of the
        starting color for a gradient fill.

FillDirection : TFillDirection
	[Used when SurfaceType is stGradientFill]

        The direction of the gradient fill from BackColor to 
	GradientToColor.

        TFillDirection = (gdUp, gdDown, gdLeft, gdRight);

ForeColor : TColor
	[Used when SurfaceType is stBrushTransparent, stBrushOpaque, 
	stBrush50PercentOpaque, or stBrush25PercentOpaque]

        Color of the foreground of the shape. Equivalent
        to brush.color for TShape. This is used to draw
        the pattern on shapes 

GradientToColor : TColor
	[Used when SurfaceType is stGradientFill]

        Ending Color of the gradient fill 
	(starting color is BackColor)

Image :TBitMap
	[Used when SurfaceType is stBrushImage]

        Bitmap used for tiling the surface of the shape


InVectorPercent : integer
	[Used when Shape is gstStar or gstPolygon]

        When this is > 0, every other point is drawn
        inward by this percentage. The percentage is
        of the distance between the outside of the shape
        and the center x/y point. 

OutlineColor : TColor
	[Used when SurfaceType is stBrushTransparent or stBrushOpaque]

        Color of the outline of the shape. Equivalent
        of pen.color in TShape. This is used to draw the
        outline. 

OutlineStyle : TPenStyle
        Defines the style of pen used to draw the outline
        Equivalent of pen.style for TShape.
        (For no outlines, use style of psClear)
        TPenStyle = (psSolid, psDash, psDot, psDashDot,
                   psDashDotDot, psClear, psInsideFrame)

OutlineWidth : integer
        Defines the thickness of the pen used to draw the
        outlines. Equivalent of pen.width for TShape.

Pattern : TBrushStyle
	[Used when SurfaceType is stBrushOpaque]
	 
        Defines the brush pattern used to draw the foreground
        of the shape.
        Equivalent of TShape.brush.style
        TBrushStyle = (bsSolid, bsClear, bsHorizontal,
                     bsVertical, bsFDiagonal, bsBDiagonal,
                     bsCross, bsDiagCross);

RoundPerc : integer
	[Used when Shape is gstRoundRect]

        Percentage of rounding of the rounded corners.
        See RoundRect in Delphi help for more info.

ShadowColor : TColor
         Color of the shape shadow.

ShadowDepth : integer
         Depth (in pixels) of the shape shadow. Can't be more than
         50% of the width or height.

Shadowfill : TShadowFill
         Sets the shadow fill as solid, 25 percent opaque or
         50 percent opaque.
         TShadowFill = (sfSolid,sf25Percent,sf50Percent);

ShadowOrient : TShadowOrient
         Orientation of the shadow relative to the shape.
         TShadowOrient = (soNone,soLowerRight,soUpperRight,
                          soUpperLeft,soLowerLeft);

Shape: TGPShapeType
    	Type of shape. Similiar to TShape.shape

        TGPShapeType =
           (gstRectangle, gstSquare, gstRoundRect,
            gstRoundSquare, gstEllipse, gstCircle,
            gstDiamond, gstStar,gstPolyGon,
            gstTriangleLeft,gstTriangleRight,
            gstTriangleUp,gstTriangleDown);

            gstRectangle       Same as TShape stRectangle
            gstSquare          Same as TShape stSquare
            gstRoundRect       Same as TShape stRoundRect
            gstRoundSquare     Same as TShape stRoundSquare
            gstEllipse         Same as TShape stEllipse
            gstCircle          Same as TShape stCircle
            gstDiamond         Diamond shaped
            gstStar            A type of gstPolyGon where
                               every other vector is pointed
                               inward (i.e. InVectorPercent is
                               > 0)
            gstPolyGon         A Polygon with the number of
                               points equal to Vectors

            gstTriangleLeft    A triangle pointing left
            gstTriangleRight   A triangle pointing right
            gstTriangleUp      A triangle pointing up
            gstTriangleDown    A triangle pointing down

StartingAngle : integer
	[Used when Shape is gstPolyGon of gstStar]

    	Starting point of the first vector of a shape from 0-359.
        Default is 90 degrees (straight up). 

SurfaceType: TSurfaceType
        Determines how the inside surface of the shape is drawn.

        TSurfaceType = (stBrushTransparent,stBrushOpaque,
                         stBrushImage,stGradientFill);

        stBrushTransparent
            Paints using a transparent background, using
            the brush style in Pattern with color of
            ForeColor
        stBrushOpaque
            Paints using an opaque background of BackColor,
            using the brush style in Pattern with color of
            ForeColor
        stBrushImage
            Paints by tiling the bitmap in Image
        stGradientFill
            Paints using a gradient fill from BackColor
            to Forecolor, in the direction given in
            FillDirection
        stBrush50PercentOpaque
            Like stBrushOpaque, but every other pixel is
            transparent.
        stBrush25PercentOpaque
            Like stBrushOpaque, but 3 in 4 pixels are
            transparent.

Vectors : integer
         Number of points in a shape of type gstPolyGon
         or gstStar. (note: for a star, both inner and
         outer points count.)




Author      Garry Prefontaine
CIS         72020,3370
Email       prefont@ibm.net or prefont@telepath.com


